#pragma once
#include "interfaces.h"
#include "SceneNodes.h"
#include "ActorData.h"

//include components
#include "TransformComponent.h"
class Scene;

class BaseActor : public IActor
{
public:
	BaseActor(ActorId id) : m_Id(id) {};
	~BaseActor() {};

	virtual bool VAddComponent(ActorComponentPtr ActorComponent);
	virtual bool VRemoveComponent();

	virtual bool VOnUpdate(float fTime);

	virtual ActorComponentPtr FindComponent(const ComponentType);
	ActorId m_Id;
	ActorComponentList m_ComponentList;
	virtual const unsigned int VGetId() { return m_Id; }
	virtual void VSetId(ActorId id) { m_Id = id; }

};
